package com.yibo.manager.user;

import com.yibo.db.helper.QueryFilter;
import com.yibo.db.user.entity.User;
import com.yibo.db.user.entity.UserInfo;
import com.yibo.db.user.entity.UserLevel;
import com.yibo.manager.user.pojo.UserMsg;

import java.util.List;

/***
 * 最终用户管理模块
 *
 * @author zhanglei
 */
public interface UserService {

    /**
     * 过滤查询最终用户信息
     *
     * @param filter  过滤条件
     * @return   用户信息
     */
    QueryFilter<List<User>> queryList(QueryFilter filter);


    /**
     * 查询单条用户拓展信息
     *
     * @param userId   用户ID
     * @return  用户拓展信息
     */
    UserInfo   queryUserInfoOne(String userId);


    /**
     * 通过用户ID 查询单条用户等级积分明细信息
     *
     * @param userId  用户ID
     * @return   用户等级积分明细
     */
    UserLevel  queryUserLevelOne(String userId);

    /**
     * 更新用户基础信息
     *
     * @param user 用户
     * @return  更新结果
     */
    int  updateUser(User user);


    /**
     * 更新用户拓展信息
     *
     * @param userInfo  用户拓展信息
     * @return      更新结果
     */
    int  updateUserInfo(UserInfo userInfo);


    /**
     * 更新用户等级积分信息
     *
     * @param userLevel  积分信息
     * @return   更新结果
     */
    int  updateUserLevel(UserLevel userLevel);


    /**
     * 删除用户信息，通过用户ID，此操作，一经执行，该用户的一切信息将清除，谨慎操作
     *
     * @param userId   用户ID
     * @return   删除结果
     */
    int  deleteUser(String userId);


    /**
     * 添加用户信息
     *
     * @param userMsg  用户信息
     * @return   添加结果
     */
    int  addUser(UserMsg userMsg);



}
